import store from '@/store/index.js';
// import ajax from './ajax.js';

function get0(num) {
	return num < 10 ? ('0' + num) : num;
}

/**
 * 获取用户地理位置方法 
 */
export function getUserLocation(fn) {
	let storeCity = store.storeCity || null;
	if (storeCity) {
		fn({
			storeCity,
			currLocation: store.storeLocation
		});
	} else {
		dd.getLocation({
			type: 1,
			success: (res) => {
				const {
					longitude,
					latitude
				} = res;
				const location = [latitude, longitude];
				let city = res.city.replace('市', '');
				storeCity = city.replace('县', '');
				console.log('首页定位成功', res, city, store);
				// this.currCity = city;
				store.commit('changeStoreCity', storeCity);
				store.commit('changeStoreLocation', location);
				fn({
					storeCity,
					currLocation: location
				});
			},
			fail(e) {
				fn({
					storeCity
				});
				uni.showToast({
					title: '定位失败，请尝试开启定位权限'
				});
			},
		});
	}
}
/**
 * 倒计时方法
 * @param {now} now  传入服务器的当前时间
 * @param {number} expireTime  过期时间，时间戳格式
 */
export function getSplitTime(now, expireTime) {
	let str = '';
	if (now < expireTime) {
		let diffTime = expireTime - now;
		let minute = 1000 * 60;
		let minuteC = parseInt(diffTime / minute);
		let secondC = parseInt((diffTime % minute) / 1000);
		str = (diffTime > 0) ? (minuteC + ' 分 ' + get0(secondC) + ' 秒') : '00 分 00 秒';
	} else {
		str = '00 分 00 秒';
	}
	return str;
}

/**
 * 小程序更新检测
 */
export function checkUpdateVersion() {
	const updateManager = dd.getUpdateManager();

	updateManager.onCheckForUpdate(function(res) {
		console.log('检测更新', res);
	});

	updateManager.onUpdateReady(function(res) {
		console.log('更新完成', res);
		uni.showModal({
			title: '更新提示',
			content: '新版本已经准备好，是否重启应用？',
			success: function(res) {
				if (res.confirm) {
					// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate();
				}
			}
		});
	});

	updateManager.onUpdateFailed(function(res) {
		console.log('新的版本下载失败', res);
		// 新的版本下载失败
		uni.showModal({
			title: '更新提示',
			content: '新版本下载失败，请尝试关闭钉钉后重新进入'
		});
	});
}

/**
 * 距离计算的方法
 * @param {number} lat1 当前的经纬度
 * @param {number} lat2  接口返回的经纬度
 */
export function getDistance(lat1, lng1, lat2, lng2) {
	function Rad(d) {
		return d * Math.PI / 180.0; //经纬度转换成三角函数中度分表形式。
	}
	var radLat1 = Rad(lat1);
	var radLat2 = Rad(lat2);
	var a = radLat1 - radLat2;
	var b = Rad(lng1) - Rad(lng2);
	var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
		Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
	s = s * 6378.137; // EARTH_RADIUS;
	s = Math.round(s * 10000) / 10000; //输出为公里
	//s=s.toFixed(4);
	return s;
}
